package web

import (
	"devops/src/common"
	"devops/src/models"
	"fmt"
	"strings"

	"github.com/gin-gonic/gin"

	"github.com/go-kit/log"
)

func NodePathAdd(c *gin.Context) {
	var inputs common.NodeCommonReq

	if err := c.BindJSON(&inputs); err != nil {
		//返回http 的一个json 数据结构。
		common.JSONR(c, 400, err)
		return
	}
	//使用中间后可以进行get之后进行断言
	logger := c.MustGet("logger").(log.Logger)

	res := strings.Split(inputs.Node, ".")
	if len(res) != 3 {
		common.JSONR(c, 400, fmt.Errorf("node_name is not valid:%v", inputs.Node))
		return
	}
	err := models.StreePathAddOne(&inputs, logger)
	if err != nil {
		common.JSONR(c, 500, err)
		return
	}
	common.JSONR(c, 200, "ok")
}
func NodePathQuery(c *gin.Context) {
	var inputs common.NodeCommonReq
	if err := c.BindJSON(&inputs); err != nil {
		common.JSONR(c, 400, err)
		return
	}
	logger := c.MustGet("logger").(log.Logger)

	if inputs.QueryType == 3 {
		if len(strings.Split(inputs.Node, ".")) != 2 {
			common.JSONR(c, 400, fmt.Errorf("query_type=3 path shoud be a.b:%v", inputs.Node))
			return
		}
	}
	res := models.StreePathQuery(&inputs, logger)
	common.JSONR(c, res)

}
